home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 72 / IOPROG_72.ISO / soft / c++ / NCTDiscWriter2.exe / {app} / MS VB.Net Samples / TestVBNETAudioCDRipper / Form1.vb < prev    next >
Encoding:
Text File  |  2003-04-02  |  19.4 KB  |  479 lines

  1. Imports NCTDISCRIPPERLib.AudioCDRipperClass
  2.  
  3.  
  4. Public Class Form1
  5.     Inherits System.Windows.Forms.Form
  6.     Dim flgPlay As Boolean
  7.     Dim flgPause As Boolean
  8.     Dim BufferSize As Long
  9.     Dim StartSamples As Long
  10.     Dim SliderBusy As Boolean
  11.     Dim RipCount As Long
  12.     Dim RipCurrent As Long
  13.     Public cddbSource As Long
  14.     Public mRipModePreset As Long
  15.     Public m_Format As Long
  16.     Public m_Bitrate As Long
  17.     Public StopRip As Boolean
  18.     Dim frmProgress As New Form2()
  19.  
  20.     Public WithEvents AudioCDRipper1 As NCTDISCRIPPERLib.AudioCDRipperClass
  21.  
  22. #Region " Windows Form Designer generated code "
  23.  
  24.     Public Sub New()
  25.         MyBase.New()
  26.  
  27.         'This call is required by the Windows Form Designer.
  28.         InitializeComponent()
  29.  
  30.         'Add any initialization after the InitializeComponent() call
  31.  
  32.     End Sub
  33.  
  34.     'Form overrides dispose to clean up the component list.
  35.     Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
  36.         If disposing Then
  37.             If Not (components Is Nothing) Then
  38.                 components.Dispose()
  39.             End If
  40.         End If
  41.         MyBase.Dispose(disposing)
  42.     End Sub
  43.  
  44.     'Required by the Windows Form Designer
  45.     Private components As System.ComponentModel.IContainer
  46.  
  47.     'NOTE: The following procedure is required by the Windows Form Designer
  48.     'It can be modified using the Windows Form Designer.  
  49.     'Do not modify it using the code editor.
  50.     Friend WithEvents ToolBar1 As System.Windows.Forms.ToolBar
  51.     Friend WithEvents Panel1 As System.Windows.Forms.Panel
  52.     Friend WithEvents StatusBar1 As System.Windows.Forms.StatusBar
  53.     Friend WithEvents StatusBarPanel1 As System.Windows.Forms.StatusBarPanel
  54.     Friend WithEvents StatusBarPanel2 As System.Windows.Forms.StatusBarPanel
  55.     Friend WithEvents StatusBarPanel3 As System.Windows.Forms.StatusBarPanel
  56.     Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader
  57.     Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader
  58.     Friend WithEvents ToolBarButton10 As System.Windows.Forms.ToolBarButton
  59.     Friend WithEvents StatusBarPanel4 As System.Windows.Forms.StatusBarPanel
  60.     Friend WithEvents cbDrive As System.Windows.Forms.ComboBox
  61.     Friend WithEvents txtAlbum As System.Windows.Forms.TextBox
  62.     Friend WithEvents txtArtist As System.Windows.Forms.TextBox
  63.     Friend WithEvents lvTracks As System.Windows.Forms.ListView
  64.     Friend WithEvents btnGetCDDB As System.Windows.Forms.ToolBarButton
  65.     Friend WithEvents btnRipNow As System.Windows.Forms.ToolBarButton
  66.     Friend WithEvents btnRefreshCD As System.Windows.Forms.ToolBarButton
  67.     Friend WithEvents btnEject As System.Windows.Forms.ToolBarButton
  68.     Friend WithEvents ImageList1 As System.Windows.Forms.ImageList
  69.     <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
  70.         Me.components = New System.ComponentModel.Container()
  71.         Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))
  72.         Me.ToolBar1 = New System.Windows.Forms.ToolBar()
  73.         Me.ToolBarButton10 = New System.Windows.Forms.ToolBarButton()
  74.         Me.btnEject = New System.Windows.Forms.ToolBarButton()
  75.         Me.btnRefreshCD = New System.Windows.Forms.ToolBarButton()
  76.         Me.btnGetCDDB = New System.Windows.Forms.ToolBarButton()
  77.         Me.btnRipNow = New System.Windows.Forms.ToolBarButton()
  78.         Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components)
  79.         Me.Panel1 = New System.Windows.Forms.Panel()
  80.         Me.txtAlbum = New System.Windows.Forms.TextBox()
  81.         Me.txtArtist = New System.Windows.Forms.TextBox()
  82.         Me.cbDrive = New System.Windows.Forms.ComboBox()
  83.         Me.StatusBar1 = New System.Windows.Forms.StatusBar()
  84.         Me.StatusBarPanel4 = New System.Windows.Forms.StatusBarPanel()
  85.         Me.StatusBarPanel1 = New System.Windows.Forms.StatusBarPanel()
  86.         Me.StatusBarPanel2 = New System.Windows.Forms.StatusBarPanel()
  87.         Me.StatusBarPanel3 = New System.Windows.Forms.StatusBarPanel()
  88.         Me.lvTracks = New System.Windows.Forms.ListView()
  89.         Me.ColumnHeader1 = New System.Windows.Forms.ColumnHeader()
  90.         Me.ColumnHeader2 = New System.Windows.Forms.ColumnHeader()
  91.         Me.Panel1.SuspendLayout()
  92.         CType(Me.StatusBarPanel4, System.ComponentModel.ISupportInitialize).BeginInit()
  93.         CType(Me.StatusBarPanel1, System.ComponentModel.ISupportInitialize).BeginInit()
  94.         CType(Me.StatusBarPanel2, System.ComponentModel.ISupportInitialize).BeginInit()
  95.         CType(Me.StatusBarPanel3, System.ComponentModel.ISupportInitialize).BeginInit()
  96.         Me.SuspendLayout()
  97.         '
  98.         'ToolBar1
  99.         '
  100.         Me.ToolBar1.Appearance = System.Windows.Forms.ToolBarAppearance.Flat
  101.         Me.ToolBar1.Buttons.AddRange(New System.Windows.Forms.ToolBarButton() {Me.ToolBarButton10, Me.btnEject, Me.btnRefreshCD, Me.btnGetCDDB, Me.btnRipNow})
  102.         Me.ToolBar1.DropDownArrows = True
  103.         Me.ToolBar1.ImageList = Me.ImageList1
  104.         Me.ToolBar1.Name = "ToolBar1"
  105.         Me.ToolBar1.ShowToolTips = True
  106.         Me.ToolBar1.Size = New System.Drawing.Size(600, 55)
  107.         Me.ToolBar1.TabIndex = 0
  108.         '
  109.         'ToolBarButton10
  110.         '
  111.         Me.ToolBarButton10.Style = System.Windows.Forms.ToolBarButtonStyle.Separator
  112.         '
  113.         'btnEject
  114.         '
  115.         Me.btnEject.ImageIndex = 0
  116.         Me.btnEject.Tag = "0"
  117.         Me.btnEject.Text = "Eject"
  118.         '
  119.         'btnRefreshCD
  120.         '
  121.         Me.btnRefreshCD.ImageIndex = 1
  122.         Me.btnRefreshCD.Tag = "1"
  123.         Me.btnRefreshCD.Text = "Refresh CD"
  124.         '
  125.         'btnGetCDDB
  126.         '
  127.         Me.btnGetCDDB.ImageIndex = 2
  128.         Me.btnGetCDDB.Tag = "2"
  129.         Me.btnGetCDDB.Text = "Get CDDB"
  130.         '
  131.         'btnRipNow
  132.         '
  133.         Me.btnRipNow.ImageIndex = 3
  134.         Me.btnRipNow.Tag = "3"
  135.         Me.btnRipNow.Text = "Rip Now"
  136.         '
  137.         'ImageList1
  138.         '
  139.         Me.ImageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth24Bit
  140.         Me.ImageList1.ImageSize = New System.Drawing.Size(32, 32)
  141.         Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer)
  142.         Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent
  143.         '
  144.         'Panel1
  145.         '
  146.         Me.Panel1.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtAlbum, Me.txtArtist, Me.cbDrive})
  147.         Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top
  148.         Me.Panel1.Location = New System.Drawing.Point(0, 55)
  149.         Me.Panel1.Name = "Panel1"
  150.         Me.Panel1.Size = New System.Drawing.Size(600, 42)
  151.         Me.Panel1.TabIndex = 1
  152.         '
  153.         'txtAlbum
  154.         '
  155.         Me.txtAlbum.Dock = System.Windows.Forms.DockStyle.Fill
  156.         Me.txtAlbum.Location = New System.Drawing.Point(0, 21)
  157.         Me.txtAlbum.Name = "txtAlbum"
  158.         Me.txtAlbum.Size = New System.Drawing.Size(304, 20)
  159.         Me.txtAlbum.TabIndex = 1
  160.         Me.txtAlbum.Text = ""
  161.         '
  162.         'txtArtist
  163.         '
  164.         Me.txtArtist.Dock = System.Windows.Forms.DockStyle.Right
  165.         Me.txtArtist.Location = New System.Drawing.Point(304, 21)
  166.         Me.txtArtist.Name = "txtArtist"
  167.         Me.txtArtist.Size = New System.Drawing.Size(296, 20)
  168.         Me.txtArtist.TabIndex = 2
  169.         Me.txtArtist.Text = ""
  170.         '
  171.         'cbDrive
  172.         '
  173.         Me.cbDrive.Dock = System.Windows.Forms.DockStyle.Top
  174.         Me.cbDrive.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
  175.         Me.cbDrive.Name = "cbDrive"
  176.         Me.cbDrive.Size = New System.Drawing.Size(600, 21)
  177.         Me.cbDrive.TabIndex = 0
  178.         '
  179.         'StatusBar1
  180.         '
  181.         Me.StatusBar1.Location = New System.Drawing.Point(0, 337)
  182.         Me.StatusBar1.Name = "StatusBar1"
  183.         Me.StatusBar1.Panels.AddRange(New System.Windows.Forms.StatusBarPanel() {Me.StatusBarPanel4, Me.StatusBarPanel1, Me.StatusBarPanel2, Me.StatusBarPanel3})
  184.         Me.StatusBar1.ShowPanels = True
  185.         Me.StatusBar1.Size = New System.Drawing.Size(600, 16)
  186.         Me.StatusBar1.TabIndex = 2
  187.         Me.StatusBar1.Text = "StatusBar1"
  188.         '
  189.         'StatusBarPanel4
  190.         '
  191.         Me.StatusBarPanel4.Width = 50
  192.         '
  193.         'StatusBarPanel1
  194.         '
  195.         Me.StatusBarPanel1.Width = 150
  196.         '
  197.         'StatusBarPanel2
  198.         '
  199.         Me.StatusBarPanel2.Width = 150
  200.         '
  201.         'StatusBarPanel3
  202.         '
  203.         Me.StatusBarPanel3.Width = 300
  204.         '
  205.         'lvTracks
  206.         '
  207.         Me.lvTracks.CheckBoxes = True
  208.         Me.lvTracks.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2})
  209.         Me.lvTracks.Dock = System.Windows.Forms.DockStyle.Fill
  210.         Me.lvTracks.FullRowSelect = True
  211.         Me.lvTracks.GridLines = True
  212.         Me.lvTracks.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable
  213.         Me.lvTracks.HideSelection = False
  214.         Me.lvTracks.Location = New System.Drawing.Point(0, 97)
  215.         Me.lvTracks.Name = "lvTracks"
  216.         Me.lvTracks.Size = New System.Drawing.Size(600, 240)
  217.         Me.lvTracks.TabIndex = 3
  218.         Me.lvTracks.View = System.Windows.Forms.View.Details
  219.         '
  220.         'ColumnHeader1
  221.         '
  222.         Me.ColumnHeader1.Text = "Track"
  223.         Me.ColumnHeader1.Width = 400
  224.         '
  225.         'ColumnHeader2
  226.         '
  227.         Me.ColumnHeader2.Text = "Duration"
  228.         '
  229.         'Form1
  230.         '
  231.         Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
  232.         Me.ClientSize = New System.Drawing.Size(600, 353)
  233.         Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.lvTracks, Me.StatusBar1, Me.Panel1, Me.ToolBar1})
  234.         Me.Name = "Form1"
  235.         Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
  236.         Me.Text = "Test VB.Net NCTDiscRipper ActiveX DLL"
  237.         Me.Panel1.ResumeLayout(False)
  238.         CType(Me.StatusBarPanel4, System.ComponentModel.ISupportInitialize).EndInit()
  239.         CType(Me.StatusBarPanel1, System.ComponentModel.ISupportInitialize).EndInit()
  240.         CType(Me.StatusBarPanel2, System.ComponentModel.ISupportInitialize).EndInit()
  241.         CType(Me.StatusBarPanel3, System.ComponentModel.ISupportInitialize).EndInit()
  242.         Me.ResumeLayout(False)
  243.  
  244.     End Sub
  245.  
  246. #End Region
  247.  
  248.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  249.         cddbSource = 0
  250.         mRipModePreset = 1
  251.         m_Format = 0
  252.         m_Bitrate = 0
  253.  
  254.         AudioCDRipper1 = New NCTDISCRIPPERLib.AudioCDRipperClass()
  255.  
  256.         AudioCDRipper1.DriverOpen()
  257.  
  258.         frmProgress.form = Me
  259.  
  260.         RefreshCD()
  261.  
  262.         StatusBar1.Panels(3).Text = "CDDB Status: IDLE"
  263.     End Sub
  264.  
  265.     Private Sub PLEnable(ByVal Enable As Boolean)
  266.         lvTracks.Enabled = Enable
  267.     End Sub
  268.  
  269.     Private Sub RefreshCD()
  270.         Dim i As Integer
  271.         StatusBar1.Panels(0).Text = "RefreshCD"
  272.         PLEnable(False)
  273.         TBBtnEnable(False)
  274.         AudioCDRipper1.Refresh() 'Re-read CD drive
  275.         cbDrive.Items.Clear()
  276.         For i = 1 To AudioCDRipper1.driveCount
  277.             AudioCDRipper1.driveNum = i
  278.             cbDrive.Items.Add("(" & AudioCDRipper1.driveLetter & "\)  " & AudioCDRipper1.driveName)
  279.         Next i
  280.         If (cbDrive.Items.Count > 0) Then
  281.             cbDrive.SelectedIndex = 0
  282.             cbDrive_SelectedIndexChanged(Nothing, Nothing)
  283.         End If
  284.  
  285.         ReloadInfo()
  286.         StatusBar1.Panels(0).Text = "Ready"
  287.  
  288.         Select Case (AudioCDRipper1.cdType)
  289.             Case NCTDISCRIPPERLib.CDDiskTypeConstants.REDBOOK : StatusBar1.Panels(1).Text = "CD-DA (Audio Disk)"
  290.             Case NCTDISCRIPPERLib.CDDiskTypeConstants.YELLOWBOOK : StatusBar1.Panels(1).Text = "Data CD"
  291.             Case NCTDISCRIPPERLib.CDDiskTypeConstants.ORANGEBOOK : StatusBar1.Panels(1).Text = "Data CD"
  292.             Case NCTDISCRIPPERLib.CDDiskTypeConstants.GREENBOOK : StatusBar1.Panels(1).Text = "CD-Interactive"
  293.             Case NCTDISCRIPPERLib.CDDiskTypeConstants.BLUEBOOK : StatusBar1.Panels(1).Text = "CD-Extra"
  294.             Case NCTDISCRIPPERLib.CDDiskTypeConstants.UNRECOGNIZED : StatusBar1.Panels(1).Text = "No Disk"
  295.         End Select
  296.  
  297.         StatusBar1.Panels(2).Text = "CDDB Disk ID: " & Hex(AudioCDRipper1.cdID)
  298.         StatusBar1.Panels(3).Text = "CDDB Status: IDLE"
  299.     End Sub
  300.  
  301.     Private Function MyIntToString(ByVal Number As Integer) As String
  302.         If (Number > 9) Then Return Number
  303.         Return "0" & Number
  304.     End Function
  305.     Private Sub ReloadInfo()
  306.         Dim i As Integer
  307.         PLEnable(False)
  308.         TBBtnEnable(False)
  309.         AudioCDRipper1.GetCDDBInfo(NCTDISCRIPPERLib.CDDBSourceConstants.CDPLAYERINI)
  310.         txtAlbum.Text = AudioCDRipper1.cddbInfoAlbum
  311.         txtArtist.Text = AudioCDRipper1.cddbInfoArtist
  312.  
  313.         If (txtArtist.Text.Length() < 1) Then txtArtist.Text = "Unknown Artist"
  314.         If (txtAlbum.Text.Length() < 1) Then txtAlbum.Text = "Unknown Album"
  315.  
  316.         lvTracks.BeginUpdate()
  317.         lvTracks.Items.Clear()
  318.  
  319.         '        lvTracks.Items.Count = AudioCDRipper1.trackCount
  320.         If (AudioCDRipper1.trackCount <> 0) Then
  321.             For i = 1 To AudioCDRipper1.trackCount
  322.                 AudioCDRipper1.trackNum = i
  323.                 Dim li As ListViewItem
  324.                 If (AudioCDRipper1.cddbInfoTitle.Length() > 0) Then
  325.                     li = lvTracks.Items.Add(MyIntToString(i) & " " & AudioCDRipper1.cddbInfoTitle)
  326.                 Else
  327.                     li = lvTracks.Items.Add("Track " & MyIntToString(i))
  328.                 End If
  329.  
  330.                 li.Checked = True
  331.                 Dim min As Long = AudioCDRipper1.trackDuration \ 60000
  332.                 Dim sec As Long = AudioCDRipper1.trackDuration \ 1000 - min * 60
  333.                 li.SubItems.Add(MyIntToString(min) + ":" + MyIntToString(sec))
  334.             Next
  335.             AudioCDRipper1.trackNum = 1
  336.             lvTracks.Items(0).Focused = True
  337.             PLEnable(True)
  338.             TBBtnEnable(True)
  339.         Else
  340.             TBBtnEnable(True)
  341.             btnGetCDDB.Enabled = False
  342.             btnRipNow.Enabled = False
  343.             PLEnable(False)
  344.         End If
  345.  
  346.         lvTracks.EndUpdate()
  347.  
  348.     End Sub
  349.     Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
  350.         Select Case e.Button.Tag
  351.             Case 0 : AudioCDRipper1.Eject()
  352.             Case 1 : RefreshCD()
  353.             Case 2
  354.                 Dim CDDBInfoEnabled As Boolean
  355.                 Select Case (cddbSource)
  356.                     Case 1 : CDDBInfoEnabled = AudioCDRipper1.GetCDDBInfo(NCTDISCRIPPERLib.CDDBSourceConstants.ONLINEDATABASE)
  357.                     Case 2 : CDDBInfoEnabled = AudioCDRipper1.GetCDDBInfo(NCTDISCRIPPERLib.CDDBSourceConstants.CDPLAYERINI)
  358.                     Case Else : CDDBInfoEnabled = AudioCDRipper1.GetCDDBInfo(NCTDISCRIPPERLib.CDDBSourceConstants.ALL)
  359.                 End Select
  360.  
  361.                 If (CDDBInfoEnabled) Then
  362.                     txtAlbum.Text = AudioCDRipper1.cddbInfoAlbum
  363.                     txtArtist.Text = AudioCDRipper1.cddbInfoArtist
  364.                     ReloadInfo()
  365.                 Else
  366.                     MsgBox("No CDDB Information available! Try other CDDB source.")
  367.                 End If
  368.                 StatusBar1.Panels(3).Text = "CDDB Status: IDLE"
  369.             Case 3 : RipNow()
  370.         End Select
  371.     End Sub
  372.  
  373.     Private Sub TBBtnEnable(ByVal Enable As Boolean)
  374.         btnEject.Enabled = Enable
  375.         btnRefreshCD.Enabled = Enable
  376.         btnGetCDDB.Enabled = Enable
  377.         btnRipNow.Enabled = Enable
  378.     End Sub
  379.     Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
  380.         AudioCDRipper1.DriverClose()
  381.         frmProgress.Dispose()
  382.     End Sub
  383.  
  384.     Private Sub RipNow()
  385.         Dim i As Int16
  386.         PLEnable(False)
  387.         TBBtnEnable(False)
  388.         Dim Rip As New Collection()
  389.         Dim gl As RipList
  390.         RipCount = 0
  391.         For i = 0 To lvTracks.Items.Count - 1
  392.             If (lvTracks.Items(i).Checked) Then
  393.                 gl = New RipList()
  394.                 gl.TracNum = i + 1
  395.                 gl.FileName = lvTracks.Items(i).Text
  396.                 RipCount += 1
  397.                 Rip.Add(gl)
  398.             End If
  399.         Next i
  400.         If (RipCount < 1) Then
  401.             MsgBox("No files to rip.")
  402.             PLEnable(True)
  403.             TBBtnEnable(True)
  404.             Return
  405.         End If
  406.         Refresh()
  407.         frmProgress.pb1.Value = 0
  408.         frmProgress.Show()
  409.         frmProgress.Refresh()
  410.         StopRip = False
  411.         AudioCDRipper1.ripModePreset = mRipModePreset
  412.         BufferSize = 44100 / 4
  413.         For i = 1 To Rip.Count
  414.             If (StopRip) Then Exit For
  415.             RipCurrent = i
  416.             gl = Rip(i)
  417.             AudioCDRipper1.trackNum = gl.TracNum
  418.  
  419.             'Rip To WAV
  420.             frmProgress.FileName = gl.FileName & ".wav" & "  Format: 44KHz, 16Bit, Stereo"
  421.             frmProgress.pb1.Value = 0
  422.             AudioCDRipper1.RipTrackToWav(gl.FileName)
  423.             While frmProgress.pb1.Value <> 100
  424.                 Application.DoEvents()
  425.             End While
  426.  
  427.             'Rip To MP3
  428.             AudioCDRipper1.SetFormatMP3()
  429.             frmProgress.pb1.Value = 0
  430.             frmProgress.FileName = gl.FileName & ".mp3" & "  Format: " & AudioCDRipper1.trackFormatString
  431.             AudioCDRipper1.RipTrackToMP3(gl.FileName)
  432.             While frmProgress.pb1.Value <> 100
  433.                 Application.DoEvents()
  434.             End While
  435.  
  436.             'Rip To WMA
  437.             AudioCDRipper1.SetFormatWMA()
  438.             frmProgress.pb1.Value = 0
  439.             frmProgress.FileName = gl.FileName & ".wma" & "  Format: " & AudioCDRipper1.trackFormatString
  440.             AudioCDRipper1.RipTrackToWMA(gl.FileName)
  441.             While frmProgress.pb1.Value <> 100
  442.                 Application.DoEvents()
  443.             End While
  444.         Next
  445.         For i = 1 To Rip.Count
  446.             Rip.Remove(1)
  447.         Next
  448.         frmProgress.Hide()
  449.         PLEnable(True)
  450.         TBBtnEnable(True)
  451.     End Sub
  452.     Private Sub AudioCDRipper1_CDDBQueryStatus(ByVal Status As NCTDISCRIPPERLib.CDDBQueryStatusConstants) Handles AudioCDRipper1.CDDBQueryStatus
  453.         Select Case (Status)
  454.             Case NCTDISCRIPPERLib.CDDBQueryStatusConstants.QUERY : StatusBar1.Panels(3).Text = "CDDB Status: QUERY"
  455.             Case NCTDISCRIPPERLib.CDDBQueryStatusConstants.PROCESSANSWER : StatusBar1.Panels(3).Text = "CDDB Status: PROCESS ANSWER"
  456.         End Select
  457.     End Sub
  458.     Private Sub AudioCDRipper1_RipRetry(ByVal sender As System.Object, ByVal e As System.EventArgs)
  459.         frmProgress.DrawTextMy("Read or Synch Error! Retry.")
  460.         Application.DoEvents()   'Yields execution so that operating system could produce the other events
  461.         If (StopRip) Then AudioCDRipper1.StopRip()
  462.     End Sub
  463.  
  464.     Private Sub AudioCDRipper1_RipProgress(ByVal Percent As Integer) Handles AudioCDRipper1.RipProgress
  465.         frmProgress.DrawTextMy("")
  466.         frmProgress.pb1.Value = Percent
  467.         If (StopRip) Then AudioCDRipper1.StopRip()
  468.     End Sub
  469.  
  470.     Private Sub AudioCDRipper1_MediaChange() Handles AudioCDRipper1.MediaChange
  471.         RefreshCD()
  472.     End Sub
  473.  
  474.     Private Sub cbDrive_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbDrive.SelectedIndexChanged
  475.         AudioCDRipper1.driveNum = cbDrive.SelectedIndex + 1
  476.     End Sub
  477.  
  478. End Class
  479.